package com.springboot.dxssglxt.controller;
import com.springboot.dxssglxt.entity.vo.UserVo;
import com.springboot.dxssglxt.qpage.QPage;
import com.springboot.dxssglxt.service.ISysUserService;
import com.springboot.dxssglxt.util.Result;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("/sys/user")
public class SysUserController {

    @Autowired
    private ISysUserService userService;

    /**
     * 日志输出对象
     */
    private static final Logger loger =  LoggerFactory.getLogger(SysUserController.class);

    /**
     * 路由地址
     */
    public String prefix = "/view/admin/user";

    /**
     * 路由地址
     */
    public String prefix_stu = "/view/admin/student";

    /**
     * 路由地址
     */
    public String prefix_account = "/view/admin/account";


    /**
     * 进入用户管理页面
     * @return
     */
    @RequestMapping("/index")
    public String index(){
        return prefix+"/index";
    }

    /**
     * 进入用户管理页面
     * @return
     */
    @RequestMapping("/index_stu")
    public String index_stu(){
        return prefix_stu+"/index";
    }

    /**
     * 进入用户管理页面
     * @return
     */
    @RequestMapping("/index_account")
    public String index_account(){
        return prefix_account+"/index";
    }


    /**
     * 获取所有的用户列表
     * @return
     */
    @RequestMapping("/list")
    @ResponseBody
    public Result getList(QPage qPage, UserVo userVo) {
        return Result.reOk("查询成功",this.userService.getPageList(qPage,userVo));
    }

    /**
     * 进入新增用户页面
     * @return
     */
    @RequestMapping("/add")
    public String add(){
        return prefix+"/add";
    }

    /**
     * 进入新增用户页面
     * @return
     */
    @RequestMapping("/add_stu")
    public String add_stu(){
        return prefix_stu+"/add";
    }


    /**
     * 新增用户保存
     * @return
     */
    @RequestMapping("/saveUser")
    @ResponseBody
    public Result saveUser(UserVo user) {
        if(StringUtils.isEmpty(user.getAccount())){
            return Result.reError("新增账号不能为空");
        }
        return this.userService.saveUser(user);
    }

    /**
     * 进入编辑用户页面
     * @return
     */
    @RequestMapping("/edit")
    public String edit(){
        return prefix+"/edit";
    }

    /**
     * 进入编辑用户页面
     * @return
     */
    @RequestMapping("/edit_stu")
    public String edit_stu(){
        return prefix_stu+"/edit";
    }

    /**
     * 根据用户iD获取用户信息
     * @param userid
     * @return
     */
    @RequestMapping("/getUserById")
    @ResponseBody
    public Result getUserById(Integer userid) {
        return Result.reOk("查询成功",this.userService.getUserRoleById(userid));
    }

    /**
     * 修改用户保存
     * @return
     */
    @RequestMapping("/updateUser")
    @ResponseBody
    public Result updateUser(UserVo user) {
        return this.userService.updateUser(user);
    }

    /**
     * 启用账号或停用账号
     * @return
     */
    @RequestMapping("/updateUserStatus")
    @ResponseBody
    public Result updateUserStatus(UserVo user) {
        return this.userService.updateUserStatus(user);
    }

    /**
     * 删除用户
     * @return
     */
    @RequestMapping("/deleteUser")
    @ResponseBody
    public Result deleteUser(UserVo user) {
        return this.userService.deleteUser(user);
    }

}
